Skip to content

Release: select bindings artifacts from tagged package configuration - #3177

Draft
rwgk wants to merge 4 commits into
rwgk/cb12-on-main-05-ci-tests-docsfrom
rwgk/cb12-on-main-06-release-routing
Draft

rwgk wants to merge 4 commits into
rwgk/cb12-on-main-05-ci-tests-docsfrom
rwgk/cb12-on-main-06-release-routing

Conversation

@rwgk

@rwgk rwgk commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

— Claude Fable 5.1 on behalf of Ralf —

Layer 6 of 8. Previous: #3176. Next: #3178. Stack map at the bottom.

What this PR does

Makes releases follow the tagged source's configuration, so v12.9.N and v13.4.N tags can both be released from main's workflow.

The one idea to hold on to: the release workflow supplies tools; the tag supplies configuration. A new resolve-bindings-package job checks out the tag into release-source/, reads its ci/versions.yml, and decides package root and toolkit. The workflow revision never substitutes its own pins, layout, or release notes. Tags from before the registry (schema 2) are rejected and need the 13.4.x branch tooling instead.

  • release.yml: resolution job; run-id is validated (same tag, same SHA, successful push run) instead of trusted; tag existence verified before a draft is created; the resolved package flows into docs, upload, TestPyPI, and PyPI jobs.
  • release-upload.yml: separate control-plane and release-source checkouts; archive from refs/tags/....
  • ci/tools/validate_release_wheels.py (new; replaces the shell wrapper): the complete wheel matrix (Python versions x platforms from the tagged source) must be present; dev/local versions and duplicates are rejected.
  • ci/tools/check_release_notes.py: notes must exist for the exact version in the tagged source; .postN exempt; Pathfinder keeps its own rule; the backport_branch logic is gone.
  • ci/tools/lookup-run-id: --run-id validation for tag mode.
  • Release checklist and RELEASE-core.md describe dry run, then full-release.

After this merges

  • A v12.9.N tag on main (or a release branch containing the registry) can be released with CI: Release, component cuda-bindings then cuda-python.
  • CUDA 13 releases from main keep working; dry runs for pre-registry tags (such as v13.4.4) must be dispatched from the 13.4.x branch after that branch receives the current CI security fixes.

Where to look

All changes (10 files, +1,046 / -698)

.github/workflows/release.yml, .github/workflows/release-upload.yml, .github/ISSUE_TEMPLATE/release_checklist.yml, .github/RELEASE-core.md, ci/tools/check_release_notes.py, ci/tools/lookup-run-id, ci/tools/validate_release_wheels.py (new), ci/tools/validate-release-wheels (deleted), ci/tools/tests/test_check_release_notes.py, ci/tools/tests/test_validate_release_wheels.py (new).

Validation and what has not been exercised
  • Unit tests cover tagged-source selection, exact run and tag matching, artifact routing, wheel-matrix completeness, and the per-component notes policies. Today's head adds one commit that simplifies the validator and removes redundant test cases.
  • The complete stack passed full CI at cuda.bindings: backport CUDA 12 runtime maintenance fixes #3182's pre-rebase head 341d286d (run 40997121153, attempt 3, 105 jobs). Pre-commit passes at the current head.
  • Not exercised: a tag-triggered CI run and a CI: Release dry run with this workflow. A dry run for a tag created after the stack lands is the natural first check.
Stack map: review scopes and merge units
Layer PR Scope Merge unit
1 #3172 import cuda_bindings_12/, byte-identical to the 12.9.x branch merged
2 #3173 integrate the import with the shared build tooling merged
3 #3174 registry, packaging, version selectors, developer environment, guidance group: #3174 + #3175 + #3176 land together
4 #3175 build both majors from main; planner; version preview bootstrap group
5 #3176 test, document, nightly, coverage; first CI-complete state group
6 #3177 releases driven by the tagged source's configuration after the group
7 #3178 maintenance policy, manual backport workflow, retire backport_branch after #3177
8 #3182 three CUDA 12 runtime fixes independent of the CI layers; stacked only for ordering

Layers 3 to 5 are review boundaries, not working intermediate states: #3174 alone breaks CI (workflows still read the removed cuda.build.version), and #3175 alone fails actionlint (callers pass an input the test workflows only accept in #3176). The plan is to review them separately and land the reviewed group as one merge. #3176 is the full-CI target for the group.

The staged stack #3314-#3322 is the alternative in which every layer is mergeable on its own; both stacks reach the same end state, except that the staged stack keeps compatibility routes for older artifact sources and retained CUDA 13 tags.

@rwgk rwgk added this to the cuda.bindings next milestone Oct 21, 2026
@rwgk rwgk added enhancement Any code-related improvements CI/CD CI/CD infrastructure cuda.bindings Everything related to the cuda.bindings module labels Oct 21, 2026
@rwgk rwgk self-assigned this Oct 21, 2026
@copy-pr-bot

copy-pr-bot Bot commented Oct 21, 2026

Copy link
Copy Markdown
Contributor

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@rwgk
rwgk added this pull request to stack #3179 October 21, 2026 04:48
@rwgk
rwgk force-pushed the rwgk/cb12-on-main-06-release-routing branch 2 times, most recently from 6cd44d1 to cce0618 Compare October 21, 2026 13:57
@rwgk
rwgk force-pushed the rwgk/cb12-on-main-06-release-routing branch from cce0618 to 32cb766 Compare October 21, 2026 14:09
@rwgk
rwgk force-pushed the rwgk/cb12-on-main-06-release-routing branch 2 times, most recently from 052a600 to 5a66951 Compare October 21, 2026 17:27
@rwgk
rwgk force-pushed the rwgk/cb12-on-main-06-release-routing branch 2 times, most recently from a9fe883 to d5cec61 Compare October 21, 2026 19:33
@rwgk
rwgk force-pushed the rwgk/cb12-on-main-06-release-routing branch from d5cec61 to 7d6d297 Compare October 22, 2026 03:52
@rwgk
rwgk force-pushed the rwgk/cb12-on-main-06-release-routing branch from 7d6d297 to c860fc8 Compare October 22, 2026 04:15
@mdboom
mdboom force-pushed the rwgk/cb12-on-main-06-release-routing branch from c860fc8 to 4b4679c Compare October 23, 2026 15:04
@rwgk
rwgk force-pushed the rwgk/cb12-on-main-06-release-routing branch 3 times, most recently from a4feb26 to 9f2d183 Compare October 26, 2026 21:35
@rwgk
rwgk force-pushed the rwgk/cb12-on-main-06-release-routing branch from 9f2d183 to c2720b9 Compare October 27, 2026 00:23
@rwgk
rwgk force-pushed the rwgk/cb12-on-main-06-release-routing branch from c2720b9 to 133aa17 Compare October 30, 2026 03:20
rwgk added 4 commits November 1, 2026 14:47
Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
codex on behalf of Ralf:

Run release resolution, note checks and publishing tools with the hardened workflow-owned interpreter. Keep tagged sources isolated and preserve no-checkout package verification.

Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
@rwgk
rwgk force-pushed the rwgk/cb12-on-main-06-release-routing branch from 9c9ba92 to 4983cc7 Compare November 1, 2026 22:50

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI/CD CI/CD infrastructure cuda.bindings Everything related to the cuda.bindings module enhancement Any code-related improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant